#ifndef PARTICLEEMITTER_H
#define PARTICLEEMITTER_H

#include "Entity.h"
#include "PhysicalBody.h"
#include "Particle.h"
#include <vector>


class ParticleEmitter : public Entity{

public:
	ParticleEmitter();		//constructor
	~ParticleEmitter();		//destructor

	////virtual functions implemented from Entity
	bool Initialize(unsigned int particle_type = 0);		//initialization routine
	bool Update();						//on-frame-update routine
	bool Deinitialize();				//deinitialization routine

	void Shoot();	//fire a particle

	void ActivateParticle(Particle* p);
	
private:
	unsigned int particleType;	//the kind of particle this emitter shoots
	static std::list<Particle*> activeParticles;	//particles currently with life
	static std::list<Particle*> inactiveParticles;	//particles considered "dead"
    PhysicalBody body;	//physical representation of the Particles being emitted
	

};

#endif